#include <iostream>
#include <string>
#include <map>
#include<vector>
#include<algorithm>
#include<unordered_map>
using namespace std;

void Test1(){
    string A, B;
    while(cin >> A >> B){
        map<char, int> AA, BB;
        for (int i = 0; i < A.size(); i++)
            AA[A[i]]++;
        for (int i = 0; i < B.size(); i++)
            BB[B[i]]++;
        for (int i = 'A'; i <= 'Z'; i++)
        {
            if (BB[i] > AA[i]){
                cout << "No" << endl;
                break;
            }
            if (i == 'Z')
                cout << "Yes" << endl;
        }
    }
}


bool isbrother(string s1, string s2){
    if(s1.length() == s2.length()){ //兄弟单词一定要长度相等
        if(s1 == s2) //不能是同一个
            return false;
        unordered_map<char, int> mp1;
        unordered_map<char, int> mp2;
        for(int i = 0; i < s1.length(); i++) //将字符串1的所有字符加入哈希表1中统计出现次数
            mp1[s1[i]]++;
        for(int i = 0; i < s2.length(); i++) //将字符串2的所有字符加入哈希表2中统计出现次数
            mp2[s2[i]]++;
        auto it = mp1.begin();
        while(it != mp1.end()){ //遍历哈希表1
            if(mp2.find(it->first) == mp2.end() || mp2[it->first] != it->second){ //在哈希表2中找到表1遍历到的字符且查看value是否一样
                return false;
            }
            it++;
        }
        return true;
    }
    return false;
}
void Test2(){
    int n;
    while(cin >> n){
        vector<string> strs(n);
        for(int i = 0; i < n; i++) //输入n个字符串
            cin >> strs[i];
        string str;
        cin >> str; //字符串str
        int k;
        cin >> k;
        vector<string> brothers;
        for(int i = 0; i < n; i++){ //检查每个字符串是否是兄弟单词
            if(isbrother(str, strs[i]))
                brothers.push_back(strs[i]);
        }
        sort(brothers.begin(), brothers.end()); //对后续排序
        cout << brothers.size() << endl;
        if(brothers.size() >= k) //输出第k个
            cout << brothers[k - 1] << endl;
    }
}

int main() {
    Test1();
    return 0;
}
